package com.kinghood.productcenter.service.async;

import com.kinghood.productcenter.common.model.dao.product.BusinessLogDO;
import com.kinghood.productcenter.common.model.dao.product.ProductBaseDO;
import com.kinghood.productcenter.common.model.dto.product.AttributeByProductIdDTO;
import com.kinghood.productcenter.common.model.dto.product.ProductReqDTO;
import com.kinghood.productcenter.common.model.dto.product.UpdateProductLogDTO;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * description
 *
 * @author zhangFanJun
 * @date 2024-01-03 15:53
 **/
public interface IAsyncBusinessLogService {

    /**
     * 新增业务日志
     *
     * @param skuId skuId
     * @param productId 业务id
     * @param content 内容
     * @param operate 操作类型
     * @param userId 操作用户id
     * @author zfj
     * @date 2024/01/03
     */
    void addLog(Long skuId, Long productId, String content, Integer operate, Long userId);

    /**
     * 新增业务日志
     *
     * @param skuId skuId
     * @param productId 业务id
     * @param content 内容
     * @param operate 操作类型
     * @param dateTime 操作时间
     * @param userId 操作用户id
     * @author zfj
     * @date 2024/01/03
     */
    void addLog(Long skuId, Long productId, String content, Integer operate, Long userId, LocalDateTime dateTime);

    /**
     * 新增业务日志
     *
     * @param productIdList 商品id
     * @param content 内容
     * @param operate 操作类型
     * @param userId 操作用户id
     * @author zfj
     * @date 2024/01/03
     */
    void addLogBusinessIdBatch(List<Long> productIdList, String content, Integer operate, Long userId);

    /**
     * 批量新增业务日志
     *
     * @param list 入库数组
     * @author zfj
     * @date 2024/01/03
     */
    void addLogBatch(List<BusinessLogDO> list);

    /**
     * 商品修改
     *
     * @param in 入参
     * @param sku 是否sku
     * @author zfj
     * @date 2024/1/11
     */
    void addUpdateProductLog(UpdateProductLogDTO in, boolean sku);
}
